package org.jiuling.wechat.base.model;

import org.jiuling.local.tools.convert.DateConvert;

import java.util.Date;

/**
 * 访问令牌模型
 * @author 紫灵
 * @date 2023年04月03日 11时16分04秒
 */
public class AccessTokenModel {

    /** 访问凭证 */
    private String accessToken;
    /** 过期时间 */
    private Date expiresTime;

    public String getAccessToken() {
        return accessToken;
    }

    public Date getExpiresTime() {
        return expiresTime;
    }

    /**
     * 建造者
     * @return 建造者
     */
    public static Builder builder(){
        return new Builder();
    }

    /** 建造者 */
    public static class Builder{

        private final AccessTokenModel accessTokenModel;

        public Builder() {
            this.accessTokenModel = new AccessTokenModel();
        }

        /**
         * 添加访问令牌
         * @param accessToken 访问令牌
         * @return 建造者
         */
        public Builder addAccessToken(String accessToken){
            accessTokenModel.accessToken = accessToken;
            return this;
        }

        /**
         * 添加过期时间
         * @param expiresIn 过期时间
         * @return 建造者
         */
        public Builder addExpiresTime(int expiresIn){
            accessTokenModel.expiresTime = DateConvert.modifySecond(new Date(),expiresIn);
            return this;
        }

        /**
         * 建造
         * @return 访问Token模型
         */
        public AccessTokenModel build(){
            return accessTokenModel;
        }
    }
}
